﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace Hyjx.FeedingService.Objects
{
    /// <summary>
    /// 上报（制胶/稀释）状态参数
    /// </summary>
    public class ReportStatusArgs
    {
        /// <summary>
        /// 设备编码
        /// </summary>
        [JsonPropertyName("device_code")]
        public string DeviceCode { get; set; } = string.Empty;
        /// <summary>
        /// 工步号
        /// </summary>
        [JsonPropertyName("step")]
        public int Step { get; set; }
        /// <summary>
        /// 工步状态。0：暂停，1：进行中，2：已完成
        /// </summary>
        [JsonPropertyName("step_status")]
        public int StepStatus { get; set; }
        /// <summary>
        /// 工步搅拌设定转速（rpm）
        /// </summary>
        [JsonPropertyName("stir_rotate_speed")]
        public int StirRotateSpeed { get; set; }
        /// <summary>
        /// 工步搅拌实际转速（rpm）
        /// </summary>
        [JsonPropertyName("stir_rotate_actual_speed")]
        public int StirRotateActualSpeed { get; set; }
        /// <summary>
        /// 工步设定时间（分钟）
        /// </summary>
        [JsonPropertyName("elapsed_time")]
        public int ElapsedTime { get; set; }
        /// <summary>
        /// 工步剩余时间
        /// </summary>
        [JsonPropertyName("remain_time")]
        public int RemainTime { get; set; }
        /// <summary>
        /// 温度设定值（℃）
        /// </summary>
        [JsonPropertyName("temperature")]
        public float Temperature { get; set; }
        /// <summary>
        /// 实际温度（℃）
        /// </summary>
        [JsonPropertyName("actual_temperature")]
        public float ActualTemperature { get; set; }
        /// <summary>
        /// 真空设定值（Mpa）
        /// </summary>
        [JsonPropertyName("vacuum")]
        public float Vacuum { get; set; }
        /// <summary>
        /// 实际压力值（Mpa）
        /// </summary>
        [JsonPropertyName("actual_vacuum")]
        public float ActualVacuum { get; set; }
        /// <summary>
        /// 搅拌机状态：运行/待机/故障
        /// </summary>
        [JsonPropertyName("status")]
        public string? Status { get; set; }
        /// <summary>
        /// 工步原材料代码
        /// </summary>
        [JsonPropertyName("material_code")]
        public int MaterialCode { get; set; }
        /// <summary>
        /// 工步材料设定重量（KG）
        /// </summary>
        [JsonPropertyName("material_weight")]
        public float MaterialWeight { get; set; }
        /// <summary>
        /// 工步实际加料量（KG）
        /// </summary>
        [JsonPropertyName("material_actual_weight")]
        public float MaterialActualWeight { get; set; }
    }
}
